const util = require('./util/util');
const dbUtil = require('./util/dbUtil');

exports.main = async () => {
    return 'hello world';
};



// 获取参数测试
exports.ryc = async (context) => {
    let data = context.data;

    const appkey = context.appkey;

    const sourceAppKey = context.sourceAppKey;
    
    const userNick = context.userNick;
    
    const mixNick = context.mixNick;

    const miniappId = context.miniappId;

    const sourceMiniAppId = context.sourceMiniAppId;

    const accessToken = context.accessToken;

    const openId = context.openId;

    return {
        'code': 0,
        'data': data,
        'openId': openId
    };
};

// 保存数据到云数据库
exports.saveToDb = async (context) => {
    let {name,desc} = context.data;

    let res = {};

    // 查找记录 返回完整的数据对象
    const data = await context.cloud.db.collection('cy_test_user').find({
        'open_id':context.openId
    });

    if (data.length == 0) {// 没有数据新增

        // 保存单条记录
        const id = await context.cloud.db.collection('cy_test_user').insertOne({
            'open_id':context.openId,
            'name':name,
            'desc':desc
        }).then();

        // 设置返回结果 ============== start
        res.id=id;
        res.code=0;
        res.msg='添加成功';
        // 设置返回结果 ============== end

        return {
            res
        }
    }else{// 修改
        const open_id = context.openId;
        // 返回受影响的行数
        const update = await context.cloud.db.collection('cy_test_user').updateMany(
            // 根据哪个字段修改
            {'open_id':open_id},

            {
                // 需要修改的值
                $set: {
                    'desc':desc
                }
            });

        // 设置返回结果 ============== start
        res.code=0;
        res.msg='修改成功';
        // 设置返回结果 ============== end
        return {
            res
        }
    }
}

// 获取集合引用
exports.getCollection = async (context) => {
    const Users = await context.cloud.db.collection('cy_test_user').find({
        // 'open_id':'!@#$%^&*'
    });
    
    const user = Users[0];

    return {
        'Users':Users,
        'user':user
    }
}

// 分页查询
exports.getCollectionByPage = async (context) => {
    let data = context.data;
    // 
    // let index = context.cloud.db.collection('cy_test_user').getIndexes();
    // return {
    //     index
    // }
    let res={};
    // ------ 参数校验 start
    // const checked = this.paramCheck(data);
    // if (checked.code <= 0) {
    //     res.code=-1;
    //     res.msg=checked.msg
    //     return {
    //         res
    //     }
    // }else{
    //     res.code = 0;
    //     res.msg = '参数正常'
    //     return {
    //         res
    //     }
    // }
    // ------ 参数校验 end

    let {pageSize,pageNum} = data;
    let pageParam = {
        limit:pageSize,
        skip:(pageSize*(pageNum-1))
    }

    const user = await context.cloud.db.collection('cy_test_user').find(
        {
            // 查询条件 相当于 where,  age: {$gt: 18} 
        },
        // {
        //     limit: pageSize,// 每页记录数
        //     skip: (pageSize*(pageNum-1)),// 跳过的行数
        //     // sort:{_id: 1}, // 排序
        // }
        pageParam
    );

    return {
        user
    }
}


/**
 * 文件上传
 */
exports.testFileUpload = async (context) => {
    let data = context.data;
    // 判空操作 --- start
    let checkedParam = {
        'name':data.name
    };
    let res = util.paramCheck(checkedParam);
    if (res != null) {
        return {
            res
        };
    }
    // 判空操作 --- end
    
}